package org.stone.project.commonPojo.dto;

import cn.hutool.core.util.ObjectUtil;
import lombok.Data;
import org.stone.project.commonPojo.customEnum.CodeEnum;

/**
 * 响应对象
 */
@Data
public class Result <T>{
    /**
     * 状态码
     */
    private Integer code;

    /**
     * 提示信息
     */
    private String msg;

    /**
     * 数据
     */
    private T data;

    /**
     * 请求UUID
     */
    private String requestId;

    /**
     * 成功响应
     * @param msg
     * @param data
     * @param <T>
     * @return
     */
    public static <T> Result<T> sucess(String msg,T data){
        if (ObjectUtil.isEmpty(msg))
            msg = CodeEnum.Ok.descriptionStr;
        Result<T> res = new Result<>();
        res.setMsg(msg);
        res.setData(data);
        res.setCode(CodeEnum.Ok.code);
        return res;
    }

    /**
     * 错误响应
     * @param code
     * @param msg
     * @return
     */
    public static Result error(Integer code,String msg){
        if (ObjectUtil.isEmpty(msg))
            msg = CodeEnum.SystemExp.descriptionStr;
        Result res = new Result<>();
        res.setMsg(msg);
        res.setCode(code);
        return res;
    }
}
